package com.kancy.delay.queue.redis.handler;

import com.kancy.delay.queue.redis.message.DelayMessage;

/**
 * <p>
 * DelayQueueExceptionHandler
 * <p>
 *
 * @author: kancy
 * @date: 2020/3/5 9:58
 **/
public interface DelayQueueExceptionHandler<T extends DelayMessage> {
    /**
     * 消费异常
     * @param delayMessage
     * @param exception
     * @param handler
     */
    default void onProcessMessageException(DelayQueueMessageHandler<T> handler, T delayMessage, Exception exception){
    }

    /**
     * 处理异常
     * @param topic
     * @param messageId
     * @param exception
     */
    default void onHandleMessageException(String topic, Object messageId, Exception exception){
    }

    /**
     * 处理异常
     * @param topic
     * @param exception
     */
    default void onHandleTopicException(String topic, Exception exception){
    }
}

